package com.sugon.modules.sparepart.service;

import com.sugon.entity.MaterialBaseEntity;
import com.sugon.entity.MaterialRecordEntity;
import com.sugon.entity.SparePartConsumRecordEntity;
import com.sugon.entity.SpareStorePosEntity;

import java.util.List;

/**
 * @author ： YuXD
 * @description： 备件库存业务manager
 * @date ： 2020-09-01 16:03
 * @version: 1.0
 */
public interface ISparepartStoreManager {

    /**
     * 备件移库
     *
     * @param currentStorePos 当前库位
     * @param targetStorePos  目标库位
     * @param exchangeNum     转移数
     * @return
     */
    boolean exchangeStorePos(SpareStorePosEntity currentStorePos, SpareStorePosEntity targetStorePos, int exchangeNum);

    /**
     * 备件领料单出库：用于通过领料单走OA审批的流程
     *
     * @param material      备件
     * @param materialItems 备件清单列表
     * @return
     */
    boolean stockOut(MaterialBaseEntity material, List<MaterialRecordEntity> materialItems);

    /**
     * 备件耗用出库：用于非OA审批的流程，可以认为是车间内部的流程
     *
     * @param consumeRecord 备件耗用记录
     * @return
     */
    boolean consumeStockOut(SparePartConsumRecordEntity consumeRecord);

}
